const db = require("../db/index")
const bcrypt = require("bcryptjs")
// 获取用户基本信息的函数
exports.getUserinfo = (req, res) => {
    // res.send("OK")
    // 1. 接受数据
    const sqlStr = "select id,username,nickname,email,user_pic from ev_users where id=?"
    db.query(sqlStr, req.user.id, (err, result) => {
        if (err) return res.cc(err)
        if (result.length !== 1) return res.cc("用户不存在")
        res.send({
            status: 0,
            message: '获取信息成功',
            data: result[0]
        })
    })
}
// 更新用户基本信息的函数
exports.updateUserinfo = (req, res) => {
    // 1. 接受数据
    const sqlStr = 'update ev_users set ? where id=?'
    db.query(sqlStr, [req.body, req.body.id], (err, result) => {
        if (err) return res.cc(err)
        if (result.affectedRows !== 1) return res.cc("更新信息失败")
        res.send({
            status: 0,
            message: '更新用户信息成功'
        })
    })

}

// 更新用户密码
exports.updatePwd = (req, res) => {
    // 根据 id 查询用户的信息
    const sql = "select * from ev_users where id=?"
    // 获取数据库中的密码信息并且验证
    db.query(sql, req.user.id, (err, result) => {
        if (err) return res.cc(err)
        //  判断用户输入的旧密码是否正确
        if (!(bcrypt.compareSync(req.body.oldPwd, result[0].password))) {
            return res.cc("旧密码错误")
        }
        // 更新数据库中的密码
        const newPwd = bcrypt.hashSync(req.body.newPwd, 10)
        const sqlStr = `update ev_users set password=? where id=${req.user.id}`
        db.query(sqlStr, newPwd, (err, result) => {
            if (err) return res.cc(err)
            if (result.affectedRows !== 1) return res.cc("更新信息失败")
            res.cc("更新密码成功", 0)
        })
    })
}
// 更新用户头像处理函数
exports.updateAvatar = (req, res) => {
    const sql = `update ev_users set user_pic=? where id=${req.user.id}`
    db.query(sql, req.body.avatar, (err, result) => {
        if (err) return res.cc(err)
        if (result.affectedRows !== 1) return res.cc("更新头像失败")
        return res.cc("更新头像成功",0)
    })
}